প্যারামিটার পাসিং: কল বাই ভ্যালু এবং কল বাই রেফারেন্স

ফাংশন ও মডুলার প্রোগ্রামিং (Functions and Modular Programming) - কম্পিউটার প্রোগ্রামিং ফান্ডামেন্টাল (Computer Programming Fundamentals) - Computer Science

210

প্রোগ্রামিংয়ে ফাংশন বা মেথডে আর্গুমেন্ট বা ইনপুট প্যারামিটার পাস করার দুটি প্রধান পদ্ধতি হলো Call by Value এবং Call by Reference। এই দুটি পদ্ধতির মধ্যে মূল পার্থক্য হল কিভাবে ফাংশনে আর্গুমেন্টগুলোর মান (value) বা রেফারেন্স (reference) পাস করা হয়। নিচে উভয় পদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।

১. Call by Value

Call by Value পদ্ধতিতে ফাংশনে প্যারামিটার হিসেবে প্রদত্ত মানের একটি কপি তৈরি হয়। অর্থাৎ, ফাংশনের মধ্যে প্যারামিটারটি স্থানীয়ভাবে পরিবর্তিত হয়, কিন্তু মূল ডেটার কোনো পরিবর্তন হয় না।

বৈশিষ্ট্য:

  • মূল ডেটার কোন পরিবর্তন হয় না।
  • ফাংশনের ভিতরে প্যারামিটার পরিবর্তন করলে বাহিরের ভেরিয়েবলে কিছুই পরিবর্তন হয় না।
  • এটি সাধারণত মৌলিক ডেটা টাইপের (যেমন: int, float) ক্ষেত্রে ব্যবহৃত হয়।

উদাহরণ:

def modify_value(x):
    x += 10  # x এর মান পরিবর্তন হচ্ছে
    return x

a = 5
result = modify_value(a)  # Call by Value
print("Result:", result)  # ফলাফল হবে 15
print("Original a:", a)    # a-এর মূল মান অপরিবর্তিত থাকবে (5)

২. Call by Reference

Call by Reference পদ্ধতিতে ফাংশনে প্যারামিটার হিসেবে প্রদত্ত ভেরিয়েবলের রেফারেন্স (অথবা অ্যাড্রেস) পাস করা হয়। এর ফলে ফাংশনের ভিতরে পরিবর্তন করা হলে মূল ভেরিয়েবলের মান পরিবর্তিত হয়।

বৈশিষ্ট্য:

  • মূল ডেটার পরিবর্তন হয়।
  • ফাংশনের ভিতরে প্যারামিটার পরিবর্তন করলে বাহিরের ভেরিয়েবলে পরিবর্তন হয়।
  • এটি সাধারণত অ্যারে, অবজেক্ট বা কলেকশনের ক্ষেত্রে ব্যবহৃত হয়।

উদাহরণ:

def modify_list(lst):
    lst.append(10)  # lst এর মধ্যে নতুন মান যোগ হচ্ছে

my_list = [1, 2, 3]
modify_list(my_list)  # Call by Reference
print("Modified list:", my_list)  # ফলাফল হবে [1, 2, 3, 10]

তুলনা: Call by Value vs Call by Reference

বৈশিষ্ট্যCall by ValueCall by Reference
প্যারামিটার পাস করার পদ্ধতিমানের কপি তৈরি করা হয়রেফারেন্স (অথবা অ্যাড্রেস) পাস করা হয়
মূল ডেটার পরিবর্তনপরিবর্তিত হয় নাপরিবর্তিত হয়
ডেটার ধরণসাধারণত মৌলিক ডেটা টাইপসাধারণত অবজেক্ট, অ্যারে, বা কলেকশন
কার্যকারিতানিরাপদ, কারণ মূল ডেটা অপরিবর্তিতসরাসরি পরিবর্তন করতে পারে

উপসংহার

Call by Value এবং Call by Reference দুইটি ভিন্ন পদ্ধতি যেভাবে ফাংশনে প্যারামিটার পাস করা হয়। Call by Value নিরাপদ কারণ এটি মূল ডেটাকে অপরিবর্তিত রাখে, তবে Call by Reference অধিক নমনীয় এবং কার্যকর যখন ডেটার পরিবর্তন করা প্রয়োজন। প্রোগ্রামিংয়ের মধ্যে কিভাবে প্যারামিটার পাস করা হবে তা নির্ভর করে নির্দিষ্ট পরিস্থিতি এবং ব্যবহারের ওপর।

Promotion

Are you sure to start over?

Loading...